package com.smart.community.property.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;

/**
 * 燃气费生成DTO
 * 
 * @author Wu.Liang
 * @since 2025-01-30
 * @version 1.0.0
 */
@Data
@Schema(description = "燃气费生成参数")
public class GasFeeGenerateDTO {

    @Schema(description = "社区ID", example = "1")
    @NotNull(message = "社区ID不能为空")
    private Long communityId;

    @Schema(description = "计费月份", example = "2025-01")
    @NotNull(message = "计费月份不能为空")
    @Pattern(regexp = "^\\d{4}-\\d{2}$", message = "计费月份格式不正确，应为yyyy-MM格式")
    private String billingMonth;

    @Schema(description = "燃气单价", example = "3.50")
    @NotNull(message = "燃气单价不能为空")
    @DecimalMin(value = "0.01", message = "燃气单价必须大于0")
    private BigDecimal unitPrice;
} 